﻿<?xml version="1.0" encoding="utf-8"?>
<xsd:schema id="DotnetRessourcesDSLSchema" targetNamespace="http://schemas.microsoft.com/dsltools/DotnetRessourcesDSL" elementFormDefault="qualified" xmlns="http://schemas.microsoft.com/dsltools/DotnetRessourcesDSL" xmlns:core="http://schemas.microsoft.com/VisualStudio/2008/DslTools/Core" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:import id="CoreSchema" namespace="http://schemas.microsoft.com/VisualStudio/2008/DslTools/Core" />
  <!-- RessourcesModel -->
  <xsd:element name="ressourcesModel" type="RessourcesModel" substitutionGroup="core:modelElement" />
  <xsd:complexType name="RessourcesModel">
    <xsd:annotation>
      <xsd:documentation>The root in which all other elements are embedded. Appears as a diagram.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Relationship: RessourcesModelHasElements -->
          <xsd:element name="elements" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>Instances of RessourcesModelHasElements</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:choice minOccurs="0" maxOccurs="unbounded" >
                  <xsd:element ref="ressourcesModelHasElements">
                    <xsd:annotation>
                      <xsd:documentation>[Relationship deriving from RessourcesModelHasElements needs to be serialized in full-form]</xsd:documentation>
                    </xsd:annotation>
                  </xsd:element>
                  <xsd:element ref="ressource" >
                    <xsd:annotation>
                      <xsd:documentation>[Target role-player]</xsd:documentation>
                    </xsd:annotation>
                  </xsd:element>
                </xsd:choice>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
          <!-- Relationship: RessourcesModelHasCultures -->
          <xsd:element name="cultures" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>Instances of RessourcesModelHasCultures</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element ref="ressourcesModelHasCultures" minOccurs="0" maxOccurs="unbounded">
                  <xsd:annotation>
                    <xsd:documentation>[Instance of RessourcesModelHasCultures needs to be serialized in full-form]</xsd:documentation>
                  </xsd:annotation>
                </xsd:element>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
        </xsd:sequence>
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- dslVersion -->
        <xsd:attribute name="dslVersion" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Version of the model serialized in this file.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- RessourcesModel Moniker -->
  <xsd:element name="ressourcesModelMoniker" type="RessourcesModelMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="RessourcesModelMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for RessourcesModel instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- Ressource -->
  <xsd:element name="ressource" type="Ressource" substitutionGroup="core:modelElement" />
  <xsd:complexType name="Ressource">
    <xsd:annotation>
      <xsd:documentation>Elements embedded in the model. Appear as boxes on the diagram.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Relationship: RessourceReferencesTargets -->
          <xsd:element name="targets" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>Instances of RessourceReferencesTargets</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:choice minOccurs="0" maxOccurs="unbounded" >
                  <xsd:element ref="ressourceReferencesTargets">
                    <xsd:annotation>
                      <xsd:documentation>[Relationship deriving from RessourceReferencesTargets needs to be serialized in full-form]</xsd:documentation>
                    </xsd:annotation>
                  </xsd:element>
                  <xsd:element ref="ressourceMoniker" >
                    <xsd:annotation>
                      <xsd:documentation>[Target role-player]</xsd:documentation>
                    </xsd:annotation>
                  </xsd:element>
                </xsd:choice>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
          <!-- Relationship: RessourceReferencesCultures -->
          <xsd:element name="cultures" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>Instances of RessourceReferencesCultures</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element ref="ressourceReferencesCultures" minOccurs="1" maxOccurs="unbounded">
                  <xsd:annotation>
                    <xsd:documentation>[Instance of RessourceReferencesCultures needs to be serialized in full-form]</xsd:documentation>
                  </xsd:annotation>
                </xsd:element>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
        </xsd:sequence>
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Name -->
        <xsd:attribute name="name" type="xsd:string" use="required" />
        <!-- Property: IsRoot -->
        <xsd:attribute name="isRoot" type="xsd:boolean" />
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- Ressource Moniker -->
  <xsd:element name="ressourceMoniker" type="RessourceMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="RessourceMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for Ressource instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="name" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- RessourceCulture -->
  <xsd:element name="ressourceCulture" type="RessourceCulture" substitutionGroup="core:modelElement" />
  <xsd:complexType name="RessourceCulture">
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <!-- Property: Name -->
        <xsd:attribute name="name" type="xsd:string" use="required" />
        <!-- Property: AsString -->
        <xsd:attribute name="asString" type="xsd:string" />
        <!-- Property: AsInteger -->
        <xsd:attribute name="asInteger" type="xsd:string" />
        <!-- Property: AsDouble -->
        <xsd:attribute name="asDouble" type="xsd:double" />
        <!-- Property: AsDatetime -->
        <xsd:attribute name="asDatetime" type="xsd:string" />
        <!-- Property: Culture -->
        <xsd:attribute name="culture" type="xsd:string" />
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- RessourceCulture Moniker -->
  <xsd:element name="ressourceCultureMoniker" type="RessourceCultureMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="RessourceCultureMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for RessourceCulture instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="name" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- RessourcesModelHasElements -->
  <xsd:element name="ressourcesModelHasElements" abstract="true" type="RessourcesModelHasElements" substitutionGroup="core:modelElement" />
  <xsd:complexType name="RessourcesModelHasElements" abstract="true" >
    <xsd:annotation>
      <xsd:documentation>Embedding relationship between the Model and Elements</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Target end Ressource -->
          <xsd:element ref="ressource" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>[Target role-player]</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- RessourcesModelHasElements Moniker -->
  <xsd:element name="ressourcesModelHasElementsMoniker" type="RessourcesModelHasElementsMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="RessourcesModelHasElementsMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for RessourcesModelHasElements instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- RessourceReferencesTargets -->
  <xsd:element name="ressourceReferencesTargets" abstract="true" type="RessourceReferencesTargets" substitutionGroup="core:modelElement" />
  <xsd:complexType name="RessourceReferencesTargets" abstract="true" >
    <xsd:annotation>
      <xsd:documentation>Reference relationship between Elements.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Target end Ressource -->
          <xsd:element ref="ressourceMoniker" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>[Target role-player]</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- RessourceReferencesTargets Moniker -->
  <xsd:element name="ressourceReferencesTargetsMoniker" type="RessourceReferencesTargetsMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="RessourceReferencesTargetsMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for RessourceReferencesTargets instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- RessourceReferencesCultures -->
  <xsd:element name="ressourceReferencesCultures" type="RessourceReferencesCultures" substitutionGroup="core:modelElement" />
  <xsd:complexType name="RessourceReferencesCultures">
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Target end RessourceCulture -->
          <xsd:element ref="ressourceCultureMoniker" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>[Target role-player]</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- RessourceReferencesCultures Moniker -->
  <xsd:element name="ressourceReferencesCulturesMoniker" type="RessourceReferencesCulturesMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="RessourceReferencesCulturesMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for RessourceReferencesCultures instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- RessourcesModelHasCultures -->
  <xsd:element name="ressourcesModelHasCultures" type="RessourcesModelHasCultures" substitutionGroup="core:modelElement" />
  <xsd:complexType name="RessourcesModelHasCultures">
    <xsd:complexContent>
      <xsd:extension base="core:ModelElement">
        <xsd:sequence minOccurs="0" maxOccurs="1">
          <!-- Target end RessourceCulture -->
          <xsd:element ref="ressourceCulture" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
              <xsd:documentation>[Target role-player]</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:sequence>
        <!-- Id -->
        <xsd:attribute name="Id" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Instance Guid of this element, needed because SerializeId is set to true.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <!-- RessourcesModelHasCultures Moniker -->
  <xsd:element name="ressourcesModelHasCulturesMoniker" type="RessourcesModelHasCulturesMoniker" substitutionGroup="core:modelElementMoniker" />
  <xsd:complexType name="RessourcesModelHasCulturesMoniker">
    <xsd:annotation>
      <xsd:documentation>Moniker for RessourcesModelHasCultures instance.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="core:ModelElementMoniker">
        <xsd:attribute name="Id" type="xsd:string" >
          <xsd:annotation>
            <xsd:documentation>Attribute to store the moniker string.</xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
</xsd:schema>

